using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WebFoundation;

namespace MHI.InspectionManager.Interfaces
{
	/// <summary>
	/// DevMajorrepairdetailT,table entity:dev_majorrepairdetail_t 
	/// </summary>
	public class DevMajorrepairdetailT
	{
		public static readonly string KeyId;
		public static readonly string KeyJobId;
		public static readonly string KeyJobRemark;
		public static readonly string KeyAppendCost;
		public static readonly string KeyScenarioDesc;
		public static readonly string KeyImplementReason;
		public static readonly string KeyBiddingPrice;
		public static readonly string KeyContractDesc;
		public static readonly string KeyApprovalDesc;
		public static readonly string KeyConstructionProcess;
		public static readonly string KeyContractExecution;
		public static readonly string KeyAcceptDesc;
		public static readonly string KeyTotalCost;
		public static readonly string KeyWarrantyCost;
		public static readonly string KeyPaidCost;
		public static readonly string KeyUnpaidCost;
		public static readonly string KeyEvaluation;
		public static readonly string KeyGmtCreated;
		public static readonly string KeyPersonModified;
		public static readonly string KeyGmtModified;
		public static readonly string KeyStateInfo;
		public static readonly string KeyIsUse;
		public static readonly string KeyVersion;
		

		static DevMajorrepairdetailT()
		{
			KeyId = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.Id);
			KeyJobId = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.JobId);
			KeyJobRemark = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.JobRemark);
			KeyAppendCost = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.AppendCost);
			KeyScenarioDesc = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.ScenarioDesc);
			KeyImplementReason = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.ImplementReason);
			KeyBiddingPrice = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.BiddingPrice);
			KeyContractDesc = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.ContractDesc);
			KeyApprovalDesc = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.ApprovalDesc);
			KeyConstructionProcess = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.ConstructionProcess);
			KeyContractExecution = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.ContractExecution);
			KeyAcceptDesc = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.AcceptDesc);
			KeyTotalCost = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.TotalCost);
			KeyWarrantyCost = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.WarrantyCost);
			KeyPaidCost = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.PaidCost);
			KeyUnpaidCost = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.UnpaidCost);
			KeyEvaluation = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.Evaluation);
			KeyGmtCreated = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.GmtCreated);
			KeyPersonModified = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.PersonModified);
			KeyGmtModified = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.GmtModified);
			KeyStateInfo = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.StateInfo);
			KeyIsUse = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.IsUse);
			KeyVersion = ExpressionHelper.GetPropertyName<DevMajorrepairdetailT>(r => r.Version);
		}
		

		private long _id; 
		private long? _jobId; 
		private string _jobRemark; 
		private decimal? _appendCost; 
		private string _scenarioDesc; 
		private string _implementReason; 
		private string _biddingPrice; 
		private string _contractDesc; 
		private string _approvalDesc; 
		private string _constructionProcess; 
		private string _contractExecution; 
		private string _acceptDesc; 
		private decimal? _totalCost; 
		private decimal? _warrantyCost; 
		private decimal? _paidCost; 
		private decimal? _unpaidCost; 
		private string _evaluation; 
		private DateTime? _gmtCreated; 
		private string _personModified; 
		private DateTime? _gmtModified; 
		private float? _stateInfo; 
		private int _isUse; 
		private long _version; 
		

		/// <summary>
		///  Id, column: id required
		/// </summary>
		[DisplayName("编码")]
		[Required]
		public long Id
		{
			get{ return _id; }
			set
			{
				if(_id != value)
				{
					_id = value;
					NotifyOfChange(KeyId);
				}
			}
		}

		/// <summary>
		///  JobId, column: job_id 
		/// </summary>
		[DisplayName("工单ID")]
		public long? JobId
		{
			get{ return _jobId; }
			set
			{
				if(_jobId != value)
				{
					_jobId = value;
					NotifyOfChange(KeyJobId);
				}
			}
		}

		/// <summary>
		///  JobRemark, column: job_remark 
		/// </summary>
		[DisplayName("大修备注")]
		public string JobRemark
		{
			get{ return _jobRemark; }
			set
			{
				if(_jobRemark != value)
				{
					_jobRemark = value;
					NotifyOfChange(KeyJobRemark);
				}
			}
		}

		/// <summary>
		///  AppendCost, column: append_cost 
		/// </summary>
		[DisplayName("追加预算")]
		public decimal? AppendCost
		{
			get{ return _appendCost; }
			set
			{
				if(_appendCost != value)
				{
					_appendCost = value;
					NotifyOfChange(KeyAppendCost);
				}
			}
		}

		/// <summary>
		///  ScenarioDesc, column: scenario_desc 
		/// </summary>
		[DisplayName("方案简述")]
		public string ScenarioDesc
		{
			get{ return _scenarioDesc; }
			set
			{
				if(_scenarioDesc != value)
				{
					_scenarioDesc = value;
					NotifyOfChange(KeyScenarioDesc);
				}
			}
		}

		/// <summary>
		///  ImplementReason, column: implement_reason 
		/// </summary>
		[DisplayName("实施理由")]
		public string ImplementReason
		{
			get{ return _implementReason; }
			set
			{
				if(_implementReason != value)
				{
					_implementReason = value;
					NotifyOfChange(KeyImplementReason);
				}
			}
		}

		/// <summary>
		///  BiddingPrice, column: bidding_price 
		/// </summary>
		[DisplayName("招标比价情况")]
		public string BiddingPrice
		{
			get{ return _biddingPrice; }
			set
			{
				if(_biddingPrice != value)
				{
					_biddingPrice = value;
					NotifyOfChange(KeyBiddingPrice);
				}
			}
		}

		/// <summary>
		///  ContractDesc, column: contract_desc 
		/// </summary>
		[DisplayName("合同情况")]
		[Required]
		public string ContractDesc
		{
			get{ return _contractDesc; }
			set
			{
				if(_contractDesc != value)
				{
					_contractDesc = value;
					NotifyOfChange(KeyContractDesc);
				}
			}
		}

		/// <summary>
		///  ApprovalDesc, column: approval_desc 
		/// </summary>
		[DisplayName("报批情况")]
		public string ApprovalDesc
		{
			get{ return _approvalDesc; }
			set
			{
				if(_approvalDesc != value)
				{
					_approvalDesc = value;
					NotifyOfChange(KeyApprovalDesc);
				}
			}
		}

		/// <summary>
		///  ConstructionProcess, column: construction_process 
		/// </summary>
		[DisplayName("施工过程")]
		public string ConstructionProcess
		{
			get{ return _constructionProcess; }
			set
			{
				if(_constructionProcess != value)
				{
					_constructionProcess = value;
					NotifyOfChange(KeyConstructionProcess);
				}
			}
		}

		/// <summary>
		///  Contract·Execution, column: contract·_execution 
		/// </summary>
		[DisplayName("合同执行")]
		public string ContractExecution
		{
			get{ return _contractExecution; }
			set
			{
				if(_contractExecution != value)
				{
					_contractExecution = value;
					NotifyOfChange(KeyContractExecution);
				}
			}
		}

		/// <summary>
		///  AcceptDesc, column: accept_desc 
		/// </summary>
		[DisplayName("验收情况")]
		public string AcceptDesc
		{
			get{ return _acceptDesc; }
			set
			{
				if(_acceptDesc != value)
				{
					_acceptDesc = value;
					NotifyOfChange(KeyAcceptDesc);
				}
			}
		}

		/// <summary>
		///  TotalCost, column: total_cost 
		/// </summary>
		[DisplayName("总决算")]
		public decimal? TotalCost
		{
			get{ return _totalCost; }
			set
			{
				if(_totalCost != value)
				{
					_totalCost = value;
					NotifyOfChange(KeyTotalCost);
				}
			}
		}

		/// <summary>
		///  WarrantyCost, column: warranty_cost 
		/// </summary>
		[DisplayName("质保金")]
		public decimal? WarrantyCost
		{
			get{ return _warrantyCost; }
			set
			{
				if(_warrantyCost != value)
				{
					_warrantyCost = value;
					NotifyOfChange(KeyWarrantyCost);
				}
			}
		}

		/// <summary>
		///  PaidCost, column: paid_cost 
		/// </summary>
		[DisplayName("已付金额")]
		public decimal? PaidCost
		{
			get{ return _paidCost; }
			set
			{
				if(_paidCost != value)
				{
					_paidCost = value;
					NotifyOfChange(KeyPaidCost);
				}
			}
		}

		/// <summary>
		///  UnpaidCost, column: unpaid_cost 
		/// </summary>
		[DisplayName("未付金额")]
		public decimal? UnpaidCost
		{
			get{ return _unpaidCost; }
			set
			{
				if(_unpaidCost != value)
				{
					_unpaidCost = value;
					NotifyOfChange(KeyUnpaidCost);
				}
			}
		}

		/// <summary>
		///  Evaluation, column: evaluation 
		/// </summary>
		[DisplayName("整体执行评价")]
		public string Evaluation
		{
			get{ return _evaluation; }
			set
			{
				if(_evaluation != value)
				{
					_evaluation = value;
					NotifyOfChange(KeyEvaluation);
				}
			}
		}

		/// <summary>
		///  GmtCreated, column: gmt_created 
		/// </summary>
		[DisplayName("@desc创建时间")]
		public DateTime? GmtCreated
		{
			get{ return _gmtCreated; }
			set
			{
				if(_gmtCreated != value)
				{
					_gmtCreated = value;
					NotifyOfChange(KeyGmtCreated);
				}
			}
		}

		/// <summary>
		///  PersonModified, column: person_modified 
		/// </summary>
		[DisplayName("@desc更新人")]
		public string PersonModified
		{
			get{ return _personModified; }
			set
			{
				if(_personModified != value)
				{
					_personModified = value;
					NotifyOfChange(KeyPersonModified);
				}
			}
		}

		/// <summary>
		///  GmtModified, column: gmt_modified 
		/// </summary>
		[DisplayName("@desc更新时间")]
		public DateTime? GmtModified
		{
			get{ return _gmtModified; }
			set
			{
				if(_gmtModified != value)
				{
					_gmtModified = value;
					NotifyOfChange(KeyGmtModified);
				}
			}
		}

		/// <summary>
		///  StateInfo, column: state_info 
		/// </summary>
		[DisplayName("标识状态")]
		public float? StateInfo
		{
			get{ return _stateInfo; }
			set
			{
				if(_stateInfo != value)
				{
					_stateInfo = value;
					NotifyOfChange(KeyStateInfo);
				}
			}
		}

		/// <summary>
		///  IsUse, column: is_use 
		/// </summary>
		[DisplayName("是否可用")]
		[Required]
		public int IsUse
		{
			get{ return _isUse; }
			set
			{
				if(_isUse != value)
				{
					_isUse = value;
					NotifyOfChange(KeyIsUse);
				}
			}
		}

		/// <summary>
		///  Version, column: version 
		/// </summary>
		[DisplayName("版本")]
		[Required]
		public long Version
		{
			get{ return _version; }
			set
			{
				if(_version != value)
				{
					_version = value;
					NotifyOfChange(KeyVersion);
				}
			}
		}

		public event PropertyChangedEventHandler PropertyChanged;

		private void NotifyOfChange(string propertyName)
		{
			if (this.PropertyChanged != null)
			{
				this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
}
